#ifndef MYTHREADFORSUBWIDGET1_H
#define MYTHREADFORSUBWIDGET1_H

#include <QObject>
#include <QThread>
#include <QSqlDatabase>
#include "subwidget_serial.h"
class QWidget;

class SubWidget1;
class MyThreadForSubwidget1:public QThread
{
    Q_OBJECT
public:
    //虽然这个MyThread类属于SubWidget1的私有类，但是两者其实完全不相关，和其他的如SubWidget1和2两个类的关系一样，唯一区别只是这个MyThread类仅可以被SubWidget1来实例化并调用
    //所以我们想要让MyThead类访问SubWidget1的方法和属性，就和两个完全不相关的类想互相访问一样，首先将SubWidget1的this指针传递进来，再将自身类设置为其的友元，这样就实现了调用一个完全不相关的类的所有属性和函数
    MyThreadForSubwidget1(SubWidget1 *subWidget1_this);
    MyThreadForSubwidget1(QSqlDatabase &db, SubWidget_Serial &Serial);
    MyThreadForSubwidget1();
    ~MyThreadForSubwidget1();
public slots:
    //关闭线程
    void stopImmediately();

protected:
    void run();        //QThread的虚函数，线程处理函数，具体可见博客
private:
    SubWidget1 *m_subWidget1_this;
    SubWidget1 *m_subwidget1;
    QWidget *m_w1;

};

#endif // MYTHREADFORSUBWIDGET1_H
